/**
 * 
 */
package cn.terrence.myrpc.common.serializable;

import cn.terrence.myrpc.common.serializable.impl.HessianCoder;
import cn.terrence.myrpc.common.serializable.impl.KryoCoder;

/**
 * @author Terrence2013
 * 2018年1月19日 下午1:55:36
 * 序列化工厂类
 */
public final class CoderBuilder {
	
	private CoderBuilder(){};
	
	/**
	 * 构建序列化Coder实例，默认返回Kryo实现
	 * @return
	 */
	public static ICoder build(CoderContext context){
		ICoder coder = null;
		if(null!=context && null!=context.getCoderType()){
			switch(context.getCoderType()){
				case KRYO:
					coder = new KryoCoder(context);
					break;
				case HESSIAN:
					coder = new HessianCoder(context);
					break;
				default:
					break;
			}
		}else{
			coder = new KryoCoder(context);
		}
		return coder;
	};
}
